// ModelObserver.h: interface for the ModelObserver class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MODELOBSERVER_H__06AAE51E_46C9_4054_B035_F33FF23844F1__INCLUDED_)
#define AFX_MODELOBSERVER_H__06AAE51E_46C9_4054_B035_F33FF23844F1__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class ModelObject;
class DllExport ModelObserver  
{
public:
	ModelObserver();
	virtual ~ModelObserver();

public:
	void Name(const CString& strName){
		m_strName = strName;
	}

	const CString& Name() const {
		return m_strName;
	}

	virtual void Update(BOOL bUpdate = FALSE) = 0;

	void Model(ModelObject* pObj){
		m_pObj = pObj;
	}

	ModelObject* Model(){
		return m_pObj;
	}

protected:
	CString m_strName;
	ModelObject* m_pObj;
};

#endif // !defined(AFX_MODELOBSERVER_H__06AAE51E_46C9_4054_B035_F33FF23844F1__INCLUDED_)
